import UIKit

@available(iOS 10.0, *)
extension QKC where AA :UIGraphicsPDFRendererFormat {
    open func documentInfo_qk_s(_ documentInfo:  [String : Any]) -> QKC<AA,YY,ZZ, [String : Any]>{
		return link(next: documentInfo).then_QK { $0.value.documentInfo = documentInfo }
	}
    open func documentInfo_qk_g() -> QKC<AA,YY,ZZ, [String : Any]>{
		 self +^ self.value.documentInfo
	}

}

@available(iOS 10.0, *)
extension QKC where AA :UIGraphicsPDFRendererContext {
    open func pdfContextBounds_qk_g() -> QKC<AA,YY,ZZ, CGRect >{
		 self +^ self.value.pdfContextBounds
	}

    open func beginPage_qk_f() -> QKC<AA,YY,ZZ,Void>{
		 self +^ self.value.beginPage()
	}

    open func beginPage_qk_f(withBounds bounds: CGRect, pageInfo: [String : Any]) -> QKC<AA,YY,ZZ, CGRect>{
		 self +^ self.value.beginPage(withBounds:bounds, pageInfo:pageInfo) +^ bounds
	}

    open func setURL_qk_f(_ url: URL, for rect: CGRect) -> QKC<AA,YY,ZZ, URL>{
		 self +^ self.value.setURL(url, for:rect) +^ url
	}

    open func addDestination_qk_f(withName name: String, at point: CGPoint) -> QKC<AA,YY,ZZ, String>{
		 self +^ self.value.addDestination(withName:name, at:point) +^ name
	}

    open func setDestinationWithName_qk_f(_ name: String, for rect: CGRect) -> QKC<AA,YY,ZZ, String>{
		 self +^ self.value.setDestinationWithName(name, for:rect) +^ name
	}

}

@available(iOS 10.0, *)
extension QKC where AA :UIGraphicsPDFRenderer {
    open func writePDF_qk_f(to url: URL, withActions actions: (UIGraphicsPDFRendererContext) -> Void) -> QKC<AA,YY,ZZ, URL>{
		 self +^ (try?self.value.writePDF(to:url, withActions:actions)) +^ url
	}

    open func pdfData_qk_f(actions: (UIGraphicsPDFRendererContext) -> Void) -> QKC<AA,YY,ZZ,Data>{
		 self +^ self.value.pdfData(actions:actions)
	}

}

